#ifndef RSPROJ_H
#define RSPROJ_H

#include "SelectType.h"
#include <QtGui/QMainWindow>
#include "ui_RSProj.h"

#include <map>

namespace TGS{
namespace MapControl{
	class MapWidget;
}
}

class MapLayer;
class LayerControlWidget;
class QLabel;
class VectorAttributeTable;
class VectorLayer;

class RSProj : public QMainWindow
{
	Q_OBJECT
	typedef TGS::MapControl::MapWidget MapWidget;
public:
	RSProj(QWidget *parent = 0, Qt::WFlags flags = 0);
	~RSProj();
private:
	void connectSignalSlot();
	void initializeGui();
	void addLayer(MapLayer* layer);
	void reportVectorDataReadingProgress(int progress);
	void createStatusBar();
	void createEnhanceMenu();
private slots:
	void addRasterLayer();
	void addVectorLayer();
	void expShpLayer();
	void onSelectModelChanged();
	void mapCoordinate(double x, double y);
	void enhanceTypeChanged();
	void onSVMClassified();
	void onSVMShpClassified();
	void onC5ImageClassified();
	void onC5ShpClassified();
	void onFiltered();
	void onGenerateRandomPoints();
	void featuredSelected();
	void polygonDrawed();
protected:
	void closeEvent(QCloseEvent *);
private:
	Ui::RSProjClass ui;
	MapWidget*	_map;
	SelectType  _selectType;
	LayerControlWidget* _layerControl;
	QLabel*				_coordinateMsgLabel;
};

#endif // RSPROJ_H
